package com.myqf.d8_反射.reflect.clazz;


import java.lang.reflect.Constructor;

/**
 * 作者：黎杭
 * 日期：2020/2/19
 */
public class TestConstructor3_带参构造类 {
    public static void main(String[] args) throws Exception {

        // 使用反射的步骤：1拿到User类的反射（Class）类
        Class cls = Member.class;// 这种看起来最简单，所以以后哪个简单就用哪个方法获取反射类
        // 第二步：既然是需要构造一个对象，那么我们需要Constructor对象
        Constructor constructor = cls.getDeclaredConstructor(String.class, Integer.class);// 无参构造是没有参数的，所以这里不用传参数
        // constructor 对象当前来说是描述User对象中的构造方法的。
        Object o = constructor.newInstance("张三", 18);// 用构造器去创建对象实例
        if (o instanceof Member) {// 如果属于User类的对象，我们可以向下强制转型！
            Member u = (Member) o;// 这样做就是安全的
            System.err.println(u.getName());// 如果创建成功。输出member的名字
            System.err.println(u.getAge());// 输出member的年龄
        }
    }
}
